var arregloPromo = new Array();

window.onload = function () {
    //mostrar
    var xmlDoc = loadXMLDoc("xml/productos.xml");
    
    var productos = xmlDoc.getElementsByTagName("producto");
    var ulContenido;
    var categoria;
    for (i=0; i < productos.length; i++) 
    {
    	//ver la categoria y adjuntar el producto al tab adecuado
    	categoria = productos[i].attributes[0].firstChild.textContent;
    	ulContenido = document.getElementById("ul"+categoria.split(' ')[0]);
    	if (ulContenido)
			ulContenido.appendChild(mostrarProducto(productos[i]));
	}
	
	var xmlDoc2 = loadXMLDoc("xml/promociones.xml");
	var promociones = xmlDoc2.getElementsByTagName("promocion");
	var ulPromo = document.getElementById("listaProm");
	
	for(i=0; i< promociones.length; i++)
	{
		ulPromo.appendChild(mostrarPromocion(promociones[i],i)); 
	}
	
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

function cambiarEstilo()
{
	var title = getActiveStyleSheet();
	if (title == "primaria")
		setActiveStyleSheet('alternativa');
	else
		setActiveStyleSheet('primaria');
}

function agregar(bot)
{
	
	var datos = bot.value.split('_');
	
	var nuevoPedido = document.createElement("li");
	nuevoPedido.setAttribute("class","pedido");
	nuevoPedido.setAttribute("id",datos[0]+"_"+datos[1]);
	
	var imagen = document.createElement("img");
	imagen.setAttribute("class","icon");
	imagen.setAttribute("src","/Proyecto2/img/helado4.png");
	
	var nombre = document.createElement("p");
	nombre.setAttribute("class","sabor");
	nombre.appendChild(document.createTextNode(datos[0]));
	
	var precio = document.createElement("p");
	precio.setAttribute("class","precio");
	precio.appendChild(document.createTextNode("$"+datos[1]));
	
	var cancelar = document.createElement("button");
	cancelar.setAttribute("class","cancelar");
	cancelar.setAttribute("value",datos[0]+"_"+datos[1]);
	cancelar.setAttribute("onclick","quitar(this)");
	
	var contenedor = document.createElement("div");
	contenedor.setAttribute("class","cant");
	
	var mas = document.createElement("button");
	mas.setAttribute("class","mas");
	mas.setAttribute("value",datos[0]+"_"+datos[1]);
	mas.setAttribute("onclick","sumar(this)");
	
	var cantidad = document.createElement("p");
	cantidad.appendChild(document.createTextNode("0.5 Kg"));
	
	var menos = document.createElement("button");
	menos.setAttribute("class","menos");
	menos.setAttribute("value",datos[0]+"_"+datos[1]);
	menos.setAttribute("onclick","restar(this)");
	
	contenedor.appendChild(mas);
	contenedor.appendChild(cantidad);
	contenedor.appendChild(menos);
	
	nuevoPedido.appendChild(imagen);
	nuevoPedido.appendChild(nombre);
	nuevoPedido.appendChild(precio);
	nuevoPedido.appendChild(cancelar);
	nuevoPedido.appendChild(contenedor);
	
	document.getElementById("ulPedidos").appendChild(nuevoPedido);
	
	$("#mcs_container5").mCustomScrollbar("vertical",400,"easeOutCirc",1.05,"fixed","yes","yes",10);
	bot.style.visibility = "hidden";
	actualizarTotal();
}

function quitar(bot)
{
	//habilitar el boton correspondiente
	var botonAgregar = $('button[value="'+bot.value+'"]');
	botonAgregar[0].style.visibility = "visible";
	//eliminar el li correspondiente a bot.value (especifica el nombre)
	var element = document.getElementById(bot.value);
	element.parentNode.removeChild(element);
	actualizarTotal();
}

function restar(bot)
{
	var li = document.getElementById(bot.value);
	//si lo que tiene en li->div->p es mayor o igual que 1
	var cantidadActual = parseFloat(li.lastElementChild.children[1].textContent);
	if (cantidadActual>=1.0)
	{
		li.lastElementChild.children[1].textContent = (cantidadActual - 0.5).toFixed(1) + " Kg";
		//actualizar precio
		var precioUnidad = parseFloat(bot.value.split('_')[1]); //1 unidad corresponde a 0.5 Kg
		var nuevoSubtotal = "$"+(precioUnidad*((cantidadActual - 0.5)/0.5)).toFixed(1);
		li.children[2].textContent = nuevoSubtotal;
	}
	actualizarTotal();
}

function sumar(bot)
{
	var li = document.getElementById(bot.value);
	//si lo que tiene en li->div->p es mayor o igual que 1
	var cantidadActual = parseFloat(li.lastElementChild.children[1].textContent);
	
	li.lastElementChild.children[1].textContent = (cantidadActual + 0.5).toFixed(1)+ " Kg";
	//actualizar precio
	var precioUnidad = parseFloat(bot.value.split('_')[1]); //1 unidad corresponde a 0.5 Kg
	var nuevoSubtotal = "$"+(precioUnidad*((cantidadActual + 0.5)/0.5)).toFixed(1);
	li.children[2].textContent = nuevoSubtotal;
	actualizarTotal();
}

function actualizarTotal()
{
	var precios = $('p.precio'); //todos los tags p con clase precio
	var subtotal = 0;
	for(i=0;i<precios.length;i++)
	{
		subtotal += parseFloat(precios[i].innerHTML.substring(1));
	}
	
	//Calculamos el descuento
	var descuento = 0;
	var i = 2;
	while((descuento==0)&&(i>=0))
	{
		descuento = validarPromo(i);
		i--;
	}	
	//Aplicamos el descuento
	subtotal -= subtotal*descuento;
	if (descuento>0)
	{
		$('#imgConPromo')[0].style.visibility = "visible";
	}
	else
		$('#imgConPromo')[0].style.visibility = "hidden";//.css("visibility","hidden");
	
	document.getElementById("total").innerHTML = "Total: $"+subtotal.toFixed(1);
	Cufon.replace('h3');
}

function validarPromo(indice)
{
	var kilos = $('div.cant > p'); //todos los tags p hijos de div.cant
	var subtotal = 0;
	for(j=0;j<kilos.length;j++)
	{
		subtotal += parseFloat(kilos[j].innerHTML); //kilos de helado en pedido
	}
	if ((subtotal - arregloPromo[indice].k) >= 0)
		return arregloPromo[indice].d;
	else 
		return 0;
}

function mostrarPromocion(promo,indice)
{
	
	var liPromo = document.createElement("li");

	liPromo.setAttribute("class","promo");
	
	var imagen = document.createElement("img");
	imagen.setAttribute("src","/Proyecto2/img/heladito.png");
	
	var nom = document.createElement("p");
	nom.setAttribute("class", "nom");
	
	var desc = document.createElement("p");
	desc.setAttribute("class", "desc");
	
	
	var elementoActual = promo.firstElementChild;
	var descuento;
	var kilos;
	do
	{
		switch(elementoActual.nodeName)
		{
			case "nombre": nom.appendChild(document.createTextNode(elementoActual.textContent));
				break;
			case "descripcion": desc.appendChild(document.createTextNode(elementoActual.textContent));
				break;
			case "descuento": descuento = elementoActual.textContent;
				break;
			case "kilos": kilos = elementoActual.textContent;
				break;
		}
		elementoActual = elementoActual.nextElementSibling;
	}
	while(elementoActual);
	
	
	liPromo.appendChild(imagen);
	liPromo.appendChild(nom);
	liPromo.appendChild(desc);
	
	arregloPromo[indice] = {d:descuento,k:kilos};
	
	return liPromo;
}

function mostrarProducto(producto) {
	
	var liProducto = document.createElement("li");
	liProducto.setAttribute("class","element");
	
	var imagen = document.createElement("img");
	imagen.setAttribute("class","cuad");
	imagen.setAttribute("alt","pic");
	imagen.setAttribute("onmouseover","setearFoto(this)");
	
	var nombre = document.createElement("p");
	nombre.setAttribute("class","nombre");
	
	var boton = document.createElement("button");
	boton.setAttribute("class","agrega");
	
	boton.setAttribute("onclick","agregar(this)");
	
	var descripcion = document.createElement("p");
	descripcion.setAttribute("class","descripcion");
	
	var precio = document.createElement("p");
	precio.setAttribute("class","precioUnidad");

	var elementoActual = producto.firstElementChild;

	var valorNombre;
	var valorPrecio;
	do
	{
		switch(elementoActual.nodeName)
		{
			case "nombre": valorNombre = elementoActual.textContent;
				break;
			case "imagen": imagen.setAttribute("src","/Proyecto2/img"+elementoActual.textContent);
				break;
			case "descripcion": descripcion.appendChild(document.createTextNode(elementoActual.textContent));
				break;
			case "precio": valorPrecio = elementoActual.textContent;
				break;
		}
		elementoActual = elementoActual.nextElementSibling;
	}
	while(elementoActual);
	
	nombre.appendChild(document.createTextNode(valorNombre));
	precio.appendChild(document.createTextNode("$ "+valorPrecio+" (1/2 Kg)"));
	boton.setAttribute("value",valorNombre+"_"+valorPrecio);
	
	liProducto.appendChild(imagen);
	liProducto.appendChild(nombre);
	liProducto.appendChild(boton);
	liProducto.appendChild(precio);
	liProducto.appendChild(descripcion);
	
	return liProducto;
}

function setearFoto(imagen)
{
	$('#recuadro').css("background-image","url("+imagen.src+")");
}

function overlay() {
	el = document.getElementById("dialogo");
	el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
}

function setActiveStyleSheet(title) 
{
	var i, a, main;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) 
	{
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) 
		{
			a.disabled = true;
			if(a.getAttribute("title") == title) a.disabled = false;
		}
	}
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);